perm filename NOTICE[UP,DOC]12 blob
sn#034031 filedate 1973-04-12 generic text, type T, neo UTF8
00100 *25 Feb 1972 NOTICEs LES
00200
00300 This file, kept in NOTICE[UP,DOC], is intended to function as a
00400 computerized bulletin board. System programmers and CUSP file
00500 contributors are invited to disseminate information concerning new
00600 programs and system features by adding notices to this file. The
00700 format is arbitrary, except that the first line (and only the first
00800 line) should begin with a "*" and should contain three fields in the
00900 form
01000 *<date><TAB><subject><TAB><programmer initials>
01100 In the date field, the year, month and day may be given in any order
01200 and the year may be abbreviated to 2 digits, but the month must be
01300 given as 3 or more letters.
01400
01500 *9 Jan 1973 NEWS LES
01600 To get selective listings from the NOTICE file, say "R NEWS", which
01700 will respond with an asterisk and expect a query such as
01800 *March 15
01900 This asks for all notices posted since the ides of March. If the day
02000 is omitted, 1 is assumed; if the month is omitted, January is
02100 assumed; if the year is omitted (as above) the last instance is
02200 assumed.
02300
02400 *Nov<TAB>SAIL
02500 is an example of a more general kind if query. This asks for all
02600 notices since last November 1 that contain the string "SAIL"
02700 somewhere in the subject field, with any case differences ignored.
02800 The search could be made more specific by saying
02900 *NOV<TAB>SAIL<TAB>DCS
03000 which delivers only such notices written by Dan Swinehart.
03100
03200 If the query begins with a <TAB>, so that the date is omitted, then
03300 all dates will be accepted. Similarly, the Subject field may be
03400 omitted. A null query outputs the entire NOTICE file.
03500
03600 If you would like the output to be spooled, type "*" at the end of
03700 your query, e. g.
03800 *July 4, 1776 Sex*
03900 If you would like to see title lines only, put a "-" at the end. You
04000 can use both "*" and "-" together in either order.
04100
04200 If you forget all this, type "?<return>" and this notice will appear
04300 magically.
04400
04500 *1 JAN 1972 DO RPH
04600 Manual is in DO.RPH[S,DOC].
04700
04800 *1 JAN 1972 DMAN REG
04900 Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
05000
05100 *1 JAN 1972 SPOOLER REG
05200 See SPOOL.DOC[S,DOC].
05300
05400 *1 JAN 1972 RSL SL WHAMS BAMS ETC JHS
05500 Service Level Reservation System -- see RSL[S,DOC]
05600
05700
05800 *1 JAN 1972 Keyboard Commands LES
05900 To get a summary of line editor and other Monitor commands, list
06000 KEY.LES[S,DOC).
06100
06200 *11 APR 1973 INFO REM
06300
06400 To have access to the REM information system, type "R INFO".
06500 The general form of command is "R INFO;<FILNAM>;<PRETYPE>"
06600 if you are an expert and know what that means.
06700
06800 *1 Jan 1972 FINGER LES
06900
07000 To get a listing of the names of all users currently logged in and
07100 their locations, say "R FINGER".
07200
07300 *29 Feb 1972 "Sticky PPN's" (RPG, COMPILE) DCS
07400
07500 A PPN specification [P,PN] appearing before a file name in an
07600 RPG command string will be used for all subsequent files which
07700 do not specify a PPN explicitly. This default remains in effect
07800 until another "sticky PPN" is specified.
07900 As an example, if I am running under [AIL,DCS]:
08000
08100 COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
08200
08300 would write the output on [AIL,DCS], get HEAD,DB, and PROD from
08400 [AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
08500
08600 *1 Jan 1972 SAIL Statement Counter Profile RES
08700
08800 To find out how to get SAIL to give you execution frequency data for
08900 pieces of your program, list NEWMAN[S,AIL].
09000
09100 *2 Mar 1972 CREF Default Listing Device DCS
09200
09300 The CREF default listing device has been changed from LPT to DSK.
09400 This change is not made in RPG mode (so that the CREF system
09500 command will still go directly to LPT).
09600
09700 *14 Mar 1972 TV "." and <esc>I Features DCS
09800
09900 Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
10000 page to become a permanent part of the file (like "W" in SOS). CANCEL
10100 will henceforth bring back this version, not the old one.
10200
10300 To interrupt a "FIND" search prematurely, type <esc>I. This replaces
10400 the "\<crlf>" method.
10500
10600 *23 Mar 1972 TV for III DCS
10700 The TV editor (though still officially unsupported) will now run on
10800 both Data-Disk and III. In fact, you can transfer (by detach/attach)
10900 from one to the other in mid-edit!
11000
11100 *30 APR 72 SEND RPH
11200 SEND NOW HAS THE FOLLOWING FORMATS:
11300
11400 SEND PN SEND TO ALL PN'S
11500 SEND * WRITE NOTICE.TXT
11600 SEND *,PN SAME AS SEND PN
11700 SEND P,* SEND TO ALL P'S
11800 SEND P,PN SEND TO SPECIFIC P,PN
11900 SEND *,* SAME AS SEND *
12000 A PN IS SOME PROGRAMMER NAME
12100 A P IS SOME PROJECT NAME
12200
12300 *30 APR 72 FAIL FW
12400 The double arrow character is no longer treated specially
12500 within the comment portion of a line. When not within a
12600 comment, it is equivalent to a carriage-return, line-feed
12700 pair. Now, within comments, it prints as itself.
12800
12900 *3 JUN 1972 RAID DCS
13000 A new version of RAID is on the system. Since it is compatible with
13100 both Data-Disc and III consoles, I have put it on SYS: as both
13200 RAID.REL and TVRAID.REL. Therefore /V, /1V, /H, /1H will all load
13300 the same program. Later, TVRAID will be phased out (of LOADER, RPG)
13400 and the numeric argument to H and V switches will be ignored.
13500 This version has been tested fairly carefully. But report any
13600 problems you have to DCS, anyway. The old files are saved as
13700 RAID.RLO and TVRAID.RLO on [CSP,SYS].
13800
13900 The following things have been changed:
14000 __ There are a few display changes; in particular, the arrow
14100 conventions of the Data-Disc RAID are now used everywhere.
14200 __ Byte mode input will be displayed in byte mode.
14300 __ Conditional breakpoints now work exactly as advertised.
14400 __ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
14500 __ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
14600
14700 The following new features have been added:
14800 __ There are three new entries to the dispatch table preceding
14900 DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
15000 this table. The three are:
15100 DDT-12: →$RPTCNT See below
15200 DDT-11: →$BGDDT First word of DDT
15300 DDT-10: →DDTEND Last word of DDT
15400
15500 __ This is "Version 1" of RAID. The version is henceforth stored
15600 in the leftmost 13 bits of JOBDDT. Since DDT and old RAID
15700 contain 0 here, you can tell which you have loaded. This is for
15800 the benefit of programs which use new features -- they can
15900 try alternate methods if the Version isn't high enough.
16000 __ If you insert a JSR $I in your program, you will effectively
16100 place a breakpoint at that location. You can proceed via <ctrl>P.
16200 DO NOT single-step or set a breakpoint on this instruction!
16300 $I is an INTERNAL symbol in RAID. There is a pointer to it at
16400 DDT-6.
16500 __ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
16600 the address specified by JOBOPC. You can proceed with <ctrl>P.
16700 Do not expect this to work if you enter DDT before running anything,
16800 or if your program jumps to DDT (unless it stores a reasonable
16900 address in JOBOPC first).
17000 __ n<ctrl><meta>S, where n is a number, will execute instructions
17100 in multi-step mode, as it would if n were absent. However, no
17200 change will be made in the display until:
17300 1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
17400 2) RAID must pause to get instructions at a subroutine call.
17500 3) You interrupt the stepping by typing something, or a
17600 breakpoint is encountered.
17700 After you respond at a type (2) pause, again the display remains
17800 unchanged until one of the conditions occurs again. If you
17900 responded <ctrl>S or <ctrl>X to the pause, the count will be
18000 exhausted before the display changes again -- barring type (3)
18100 events. The remaining count, if any, is always available in
18200 $RPTCNT. This is useful for counting exact numbers of
18300 executions in a given routine, etc.
18400 __ Symbol<meta>K obliterates the Symbol. Unlike <ctrl>K, which
18500 simply eliminates typout of the symbol, this also makes it
18600 undefined for typein. If, for instance, you have two locations
18700 with the name NM1, do:
18800 NM2←NM1 Assigns a new name to one of them.
18900 NM1<meta>K Deletes this symbol completely.
19000 NM1; Reveals value of the other NM1. Now
19100 NM2 refers to the first.
19200 __ Macros:
19300 Address<ctrl>M<letter> defines <ctrl><meta><letter> as
19400 a macro. When the macro is invoked, Address (it can be just
19500 an address or a byte pointer value) will be put in $M-1 (see
19600 RAID.ON[S,DOC]. This has the effect of evaluating the string
19700 at Address before evaluating any more keyboard input -- expanding
19800 the macro. Be warned that many <ctrl><meta><letter> combinations
19900 already mean something -- use one you can do without (the macro
20000 takes precedence).
20100 *4 JUN 1972 NEW DISPLAY EDITOR SRS
20200
20300 there now exists a new display editor, called ED, available for
20400 experimentation. to run it, type
20500 RU ED[S,SRS]
20600 when it starts up, there will be some documentation on the screen.
20700 ED is presently experimental, and improving. Features
20800 include: editing several files at once, splitting screen between
20900 several files or strings, faster than TV in some cases.
21000
21100 *6 JUN 1972 PUB MANUAL TES
21200
21300 A new version of PUB was put up today with some obscure bugs fixed.
21400 Indexes and headings now work well. AFTER PAGE does not always
21500 work, but AFTER TEXT is usually equivalent and does work.
21600 If you must use old version, please tell me why! To use it, log in
21700 as 12,TES and RUN PUB.
21800
21900 There is a new manual: SPOOL PUB.TES[S,DOC]/N/B It is 80 PAGES long, so
22000 if you don't plan to use PUB for a few months, it is advisable to
22100 wait for the SAILON to be printed. The new manual has an index
22200 and a tutorial for beginners, plus appendices with (untested) examples.
22300 To use PUB for simple purposes, only a portion of the manual needs to be
22400 read.
22500
22600 *MAR 1972 LOGOUT REG
22700 Recent changes to logout command.
22800
22900 The logout command is used to terminate a job that was created
23000 by Login, Fork, or Cfork commands. The usual form of the command is
23100 K or KJOB, typed at monitor level, followed by a carriage return.
23200
23300 A new command is called KAT, which combines the features of the
23400 K command and the ATtach command. KAT requires the job number of the
23500 job to which you want to attach. As in the Attach command, if you
23600 are attaching to a job with a different PPN than the job you are leaving,
23700 you must supply the ppn of the job to which you are attaching.
23800
23900 Command Formats
24000 Note that curly backets { and } denote optional
24100 arguments; pointy brackets < and > denote a symbolic item which should
24200 be replaced by some concrete instantiation of that item.
24300
24400 K or KJOB command:
24500
24600 K{JOB}{/<switch list>}
24700
24800 KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
24900
25000 Each command line is terminated by a carriage return.
25100
25200 The item <switch list> consists of any sequence of letters
25300 chosen from the list below:
25400 THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
25500
25600 For further confusion, consult R. Gorin.
25700 *1969 DDT WFW
25800 The following changes have been made to DDT:
25900
26000 l. Halfword printout is now of the form A,,B instead
26100 of (A)B. Either form may be used on input. The difference
26200 is that A,,B truncates A to 18 bits before
26300 swapping halves while (A)B does not.
26400
26500 2. $U is a new output mode. It is the same as $A$H.
26600 3. $F mode will now print normalized floating permit
26700 numbers as decimal integers. This means that
26800 FORTRAN users may, in general, use $F to look at
26900 all variables and they will be printed correctly
27000 either fixed or floating.
27100
27200 4. If the address of a string of ASCIZ text is placed
27300 in $nB+3, then whenever breakpoint n is reached,
27400 DDT will act as if the characters in the string were
27500 being read from the teletype. If you are preparing
27600 such a string in advance use either $ or ≠ (≠33 octal)
27700 for altmode.
27800
27900 5. If a bytepointer to an asciz string is placed in
28000 $M-l, DDT will act as if the characters in the string
28100 are being read from the teletype.
28200
28300 6. $$7" <delimiter> characters <delimiter> will act just
28400 like an asciz statement in MACRO or FAIL,i.e.,
28500 more than one word will be filled with asciz for
28600 the characters if necessary. $$" will have a similar
28700 effect but with sixbit.
28800
28900 7. Typing <number>$$P will cause DDT to do an automatic
29000 proceed <number> times instead of forever.
29100
29200 8. When printing in $$ mode, no word will be printed
29300 out as an I/O instruction (COND, DATAO, CONI, etc.)
29400 unless the device number is in a special table. The
29500 table is 10 words long and is in $I-1, $I-2, etc.
29600 Simply put device number here to have the appropriate I/O
29700 instructions printed.
29800
29900 9. If an address is placed in $M-2 then for each character
30000 DDT wishes to output, a pushj 1,@$M-2 will be executed.
30100 This allows output to be redirected to some device
30200 other than the TTY. The character is in register 5. The
30300 routine should preserve all AC's and end with a POPJ l,.
30400
30500 10. In byte mode output ($<number>0), if a size of 0
30600 is specified, DDT will use a special mark in $M+2.
30700 The boundry between 1 and 0 bits specifies the size
30800 of the bytes. For example, a word containing
30900
31000 11111111111 00000000000 11100010110001
31100
31200 would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
31300 bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
31400
31500 11. Bytes may be input of $<number>%. This should be
31600 followed by a string of unsigned octal numbers
31700 separated by common and terminated by an altmode. The
31800 number of bytes in a word is not integal the last
31900 byte is treated as if the word were larger
32000 (bit number greater than 35). This makes input compatible
32100 with output. A size of O uses the mark in $M+2
32200 as above.
32300
32400 12. It is now possible to print flag words and T type
32500 instruction (TRUN, TLNN, etc.) with suitable names
32600 for the bit involved. In $M+3 a pointer of the following
32700 form is placed:
32800
32900 _______
33000 | |
33100 _______ | |
33200 $M+3 | L1 | T0 | | Table 0 |
33300 | |
33400 _______
33500
33600
33700 _______
33800 | |
33900 | Table 1 |
34000 | |
34100 _______
34200
34300 _______
34400 | |
34500 | Table 2 |
34600 | |
34700 _______
34800 As many tables as desired may be included. The pointer
34900 to the last table should have 0 in the left half. Each
35000 table contains 36 words. The nth word contains the
35100 RADIX50 for the name of bit n. $<number>J mode will
35200 cause a word to be printed out using the bit names in
35300 table number. If an entry for a bit in 0, the numeric
35400 value will be printed. A typical word might look like
35500
35600 foo! baz! 123,, fool! garp! 2
35700
35800 $J means $0J. $nL causes the left half to be
35900 printed in symbolic and the right half to be printed in
36000 ↑STODAT:
36100 bit mode, using the names of the bits as if they appeared
36200 in the left half. $<number>V prints the left half in symbolic
36300 and the right half in bit mode.
36400
36500 13. You can now transfer to what is pointed to by the left half
36600 of a word in the same manner as you transfer using <tab>.
36700 The command is <control>].
36800
36900 *FEB 1972 NEW WHO DCS
37000 As of 12-9-71:
37100
37200 1. WHO will run for about two minutes, then quit. You can reset
37300 this time by issuing commands (see below).
37400
37500 2. Typing <call> does not stop spacewar jobs. However, after about
37600 6 seconds of operation after a <call>, the spacewar portion of
37700 WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777). This will
37800 be made cleaner if the system types give me some help.
37900
38000 3. WHO commands are now single-character commands. WHO will not wait
38100 for a carriage return before executing one.
38200
38300 4. Previously, many lines of the WHO page were lost below the bottom
38400 of the screen. WHO now provides a "windowing" feature. Type "↑"
38500 to move the text up, so that the line which did appear at the
38600 center of the screen now appears at the top. This reveals several
38700 new lines at the bottom. A digit preceding the "↑" serves as a
38800 repeat factor.
38900
39000 5. The "↓" command, with optional repeat factor, moves the text down
39100 by a half-screenful, unless the first line already is displayed.
39200
39300 6. The "E" command causes WHO to quit. However, the last-drawn screen
39400 will not be cleared. So you can look at it.
39500
39600 7. Any other character will cause WHO to clear the screen (revealing
39700 your old page printer), then quit.
39800 *14 June 1972 VIDEO SWITCH DOCUMENTATION LES
39900 A SAILON describing the video switch hardware resides in
40000 VDS.LES[S,DOC]. A description of keyboard commands and monitor calls
40100 for controlling the switch and DD channel allocation are described in
40200 VIDEO.LES[UP,DOC]. To get a summary of the keyboard commands, say
40300 "HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
40400
40500 *7 July 1972 DOCUMENTATION FILES LES
40600 Online documentation files are divided into several areas, as follows.
40700 [P,DOC] contains the compiled version of the lab phone
40800 directory and other lists of people.
40900 [UP,DOC] contains user program descriptions (informal).
41000 [S,DOC] contains SAILONs, which are more formal descriptions
41100 of programs and hardware.
41200 [AIM,DOC] contains A. I. Memos, which report research results.
41300 [BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
41400
41500 *23 JULY 1972 KLOG RHT
41600 The KLOG command allows you to switch areas in one line. Semantically
41700 it is LOGOUT, followed by LOGIN. The syntax is:
41800
41900 KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
42000
42100 examples
42200
42300 KLOG 1/RHT
42400
42500 KL/F 1|RHT
42600
42700 KL
42800 1,RHT
42900
43000 *24 Jul 1972 SAIL DCS,RHT,JRL
43100 LEAP news
43200
43300 1. In the past global model users of LEAP were required
43400 to have the statement:
43500
43600 REQUIRE -1 NEW_ITEMS;
43700
43800 in order to inhibit the allocation of various tables
43900 for the local leap model. This statement is no longer
44000 required. Instead the decision to allocate the tables
44100 will be made using the following criteria. The local model
44200 tables will be allocated only if any of the programs loaded
44300 together to form a single job contain any declared local
44400 items ( that is, any items declared without the attribute
44500 GLOBAL), or any of the programs contain the statement:
44600
44700 REQUIRE n NEW_ITEMS;
44800
44900 where "n" is greater that 0.
45000 NOTE: this means that all users of local model LEAP must now
45100 "require" new_items if they are going to dynamically create
45200 non-global items by using the function NEW.(previously an
45300 implicit REQUIRE 60 NEW_ITEMS was contained in every program).
45400
45500
45600 2. LEAP tables are now allocated as part of the SAIL initialization
45700 code rather than on the first call to any LEAP subroutine.
45800 The tables will be allocated if any of the SAIL programs
45900 loaded contain declared items, itemvars, sets, lists or calls
46000 to LEAP. This change was made so that datums of items could
46100 be utilized before the first call to LEAP.
46200
46300 3. The type codes for items have been altered. The new codes
46400 returned by the TYPEIT function are as follows:
46500
46600 0 - item deleted or never allocated
46700 1 - no type (no datum for this item)
46800 2 - item is bracketed triple
46900 3 - string
47000 4 - real
47100 5 - integer
47200 6 - set
47300 7 - list
47400 8 - procedure
47500 16 - string array
47600 17 - real array
47700 18 - integer array
47800 19 - set array
47900 20 - list array
48000 21 - invalid (runtime has screwed something up)
48100 The very astute user will notice that the only changes are to
48200 up the codes for arrays and invalid by 5.
48300
48400 IMPORTANT NOTE:This unfortunately will necesitate the recompilation
48500 and reloading of any programs which use array items as the RUNTIME
48600 routines also use these type codes.The standard
48700 compiler SAIL on [1,3] will have these changes as of 23:59 WED,
48800 jul26. Therefore if any of your programs use array items you should
48900 recompile them starting Thurs jul 27. Foist all complaints onto
49000 Jim Low.
49100
49200
49300 *25 Jul 1972 SPOOLER REG
49400 SPOOLER NEWS:
49500 The old spooler '*LIST*' has been removed from the system.
49600 Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
49700 have to reload with the new libraray.
49800
49900 The command SPOOLQ has been removed. Instead, use the command
50000 QSPOOL. This has the advantage that the command can be abbreviated
50100 to one letter and the SPOOL command to two letters.
50200
50300 A new SPOOL command is planned. This will allow users to more
50400 fully utilize features of the new spooler.
50500
50600 *1 Aug 1972 FORTRAN REG
50700 DEC FORTRAN version 25 and LIB40 version 31 have been put up.
50800 Some of the bugs in the compiler / operating system have been
50900 eliminated.
51000
51100 *9 Aug 1972 DATA DISK FW
51200 Two new features have been added to data disk DPYOUT:
51300
51400 1) Overlapped mode, enabled by bit 0 of header word 0.
51500 In this mode, a DPYOUT will return without waiting for
51600 the transfer to be completed (although it will wait
51700 for any previou transfer), enabling the program to
51800 continue running. Header+2 will be set nonzero during
51900 the transfer, and to zero after the transfer is complete,
52000 so testing this is convenient (which should be done before
52100 changing the buffer). A DPYOUT with a zero word count will
52200 wait for a previous transfer without initiating a new one.
52300
52400 2) Double field mode, useful for text output. This is enabled
52500 by bit 1 of header word 0 and will cause the buffer to be
52600 transferred twice, once on each field. Header+3 should specify
52700 the address of the line address command word, which should
52800 contain the low-order line address as the third command in
52900 the word. Bit 24 of this word will be set to the proper
53000 field on each transfer. This feature cannot be used if more
53100 than one low-order line address command is used.
53200
53300 *16 Aug 1972 AP NEWS (APE, HOT) ME
53400
53500 We have a line from the Associated Press (AP) over which we get
53600 national and international news. The news that comes in gets filed
53700 on the disk and saved for about 24 hours.
53800
53900 For use in reading the news, there are two programs on the system.
54000
54100 Type "R HOT" to have the news typed on your console as it comes in.
54200
54300 Type "R APE" to be able to selectively read the news that is on file.
54400 The stories are catagorized by keywords; to read the news, you type
54500 to APE whatever keywords you want to read about. To get help when
54600 you are running APE, type "?" and carriage return at any point. For a
54700 list of the keywords, TYPE the file WORDS.SRT[AP,SYS] or SPOOL the
54800 file WORDS.LST[AP,SYS].
54900
55000 For further information, see the file APE.ME[UP,DOC].
55100
55200
55300 *16 AUG 1972 SAIL MATRIX ROUTINES PACKAGE SHK
55400
55500 Following Matrix Routines Now Available:
55600
55700 1) Real Matrix Multiplication Routine
55800 Multiplies two n-dimensional matrices (2-dimensional arrays)
55900 (size m x n by n x p to get a m x p matrix)
56000 or multiplies a 1-dimensional matrix by an n-dimensional matrix
56100 or an n-dimensional matrix by a 1-dimensional.
56200 MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
56300 multiplies A by B and places the result in C
56400 (MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
56500 The only thing it won't do (I think) is multiply two 1-dimensional
56600 matrices or n-dimensional arrays (n>2).
56700
56800 2) Array Clear Routine
56900 MATCLR(REAL (or INTEGER) ARRAY A);
57000 Zeros the array A.
57100
57200 3) Real Array Multiplied by a Real Constant
57300 CONMUL(REAL ARRAY A,REAL B);
57400 Multiplies array A by constant B and places the result in A.
57500
57600 All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
57700
57800
57900 *30 Aug 1972 UUO SHK
58000 There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
58100
58200 *4 Sept 1972 AP NEWS (APE, HOT) ME
58300 The AP news is now spooled once a day (at a somewhat random
58400 time). The listing, which will be kept in the conference
58500 room, will indicate a file name of "APNEWS[AP,SYS]".
58600
58700 *4 SEP 1972 FILDMP RPH
58800 New program to list files in different formats. See FILDMP.RPH on UP,DOC.
58900
59000 *4 SEP 1972 NEW SAIL RHT
59100 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM WILL BE UP. ITS
59200 SEGMENT WILL BE SAISG4. THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
59300 FEATURES, INCLUDING USER REQUESTED INITIALIZATIONS, A LOCATION(X)
59400 FUNCTION, AN IMPLICIT ARRAY: MEMORY[0:MEMSIZE], THE RUDIMENTS OF
59500 MULTIPLE PROCESSES, AND MUCH MORE. WE WILL TRY TO HAVE SOME
59600 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
59700 *22 SEP 1972 NEW SAIL RHT,JRL,KVL
59800 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
59900 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
60000 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
60100
60200 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
60300 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
60400 NEWFEA.TXT[S,JRL].
60500
60600 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
60700 MODEL HACKERS GLBS10.
60800
60900 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
61000 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
61100 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
61200 ARE RELOADED.
61300
61400
61500 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
61600 SAISG3 IS DELETED.
61700
61800 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
61900 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
62000 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
62100 PROGRAM WITHOUT UNREADABLE MACROS.
62200
62300 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
62400 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
62500 GLBLOW.REL AS GLBLOW.921. IF YOU FEEL YOU ARE BEING
62600 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
62700 SAY SOMETHING LIKE
62800
62900 R SAIL.921 <CR>
63000 * FOO←FOO <CR>
63100 * LOADER!
63200 * SAILOW.921[1,3],FOO <ALT>
63300
63400 WHERE THE STARS ARE TYPED BY THE SYSTEM
63500
63600 THIS WILL GIVE YOU THE EFFECT OF DOING
63700
63800 LOA /COM FOO
63900
64000 USING THE PREVIOUS SYSTEM.
64100
64200 *22 Sept 1972 Upper Segment RAID and DDT TVR
64300 RAID or DDT may be retrieved from the disk and run from an upper
64400 segment. This means your core image may contain RAID at a much lower
64500 cost (102 octal words instead of 12200 words for RAID). For details
64600 see DEBUG.DOC[1,TVR]
64700
64800 *22 Sept 1972 AP NEWS (APE) ME
64900 Multiple word keywords are now implemented in APE. To use them,
65000 separate the individual words with spaces in your keyword exressions.
65100
65200 Also, to have only the first few lines of each story you select
65300 typed out, type an "F" at the beginning of the story selection
65400 line ("Read which one(s)?"). If you use both "F" and "=" on
65500 the same line, the order is irrelevant. When you use the "F"
65600 feature, you cannot spool or save the stories in a file.
65700
65800 For details on using APE, see the file APE.ME[UP,DOC].
65900
66000 *12 Oct 1972 FAIL TVR
66100 FAIL has been changed to stop at each error and give the option to
66200 continue to next error, continue automatically or to edit. The edit
66300
66400 option will call SOS if there are line numbers and TVED if not. Any
66500 complaints should be sent to TVR. If you don't want to stop at each
66600 error, give FAIL the switch (F). The old version is FAIL.OLD[1,3].
66700 *21 Oct 1972 SAIL JRL,RHT,KVL
66800 A new SAIL compiler has been put up to correct bugs reported in the
66900 last few weeks. There should be no incompatibitlies with the preceding
67000 compiler and programs compiled with the previous compiler should
67100 be runable with programs compiled with the new compiler. Thus, there
67200 is no need to recompile or even reload SAIL programs which have
67300 been compiled since SEPT 21. If you do have a program which
67400 compiled in the last month but doesn't now:
67500 1. REPORT THE PROBLEM TO A SAIL HACKER - or send
67600 a message to AIL, including such details as
67700 where a copy of the offending program is and the
67800 nature of the SAIL bug.
67900 2. You may use the previous compiler by
68000 R SAIL.102
68100 * FOO←FOO
68200 * <call>
68300 where FOO is the name of your sail program and <call>
68400 represents the typing of the CALL button (the stars are
68500 typed by the system). The above sequence is equivalent to
68600 the system level command:
68700
68800 COM /COM FOO
68900
69000 A note to users of multiple processes and matching procedures:
69100 To initialize the multiple process environment the user
69200 should include the following declaration:
69300
69400 EXTERNAL PROCEDURE MAINPR;
69500
69600 He should also make sure this procedure is called before
69700 doing any process sprouting or matching procedure calling.
69800 This is best done by using the REQUIRE INITIALIZATION feature
69900 or by making:
70000 MAINPR;
70100 The first executable statement of your program.
70200 This initialization will be compiled in, in the near future but until
70300 then the above hack is required.
70400 *3 Nov 1972 USER INTERRUPTS FW
70500 The PC stored on a memory protect interrupt via the new-style
70600 user interrupt system is now the exact PC stored by the hardware,
70700 rather than being incremented as it used to be. This is consistent
70800 both with the old-style (DEC) user interrupt system and with the
70900 "ILL MEM REF AT USER xxxxxx" typeout. If you really care about
71000 the exact value of this PC, consult me or the PDP-10 flowcharts,
71100 as it is anything but consistent.
71200 *3 Nov 1972 VIDEO SWITCH FW
71300 The VDSMAP UUO now allows the 6 extra switch channels to be
71400 addressed by setting bit 9 in the AC and putting the channel number
71500 (0-5) in the TTY# field (11-17).
71600
71700 *8 Nov 1972 DUMPS REG
71800 DART, a new program to back up disk files on tapes, is available.
71900 system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
72000 run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
72100 See DART.REG[UP,DOC].
72200
72300 *8 Nov 1972 PROTECTION REG
72400 The file access protection bit 400, which formerly had no
72500 signifigance, now means 'Dump Never' in DART. All files that had
72600 used this bit have been renamed without it.
72700
72800 *11 Nov 1972 SYSTEM REG
72900 The job table JOBQUE in the system now contains either the positive
73000 or negative value of the queue code of a job. Formerly, it had
73100 always been negative.
73200
73300 *26 Nov 1972 FTP DCS
73400 A new FTP has been installed with the following features:
73500
73600 1) You needn't type the MODE, TYPE, or BYTE commands at all
73700 unless you want to change the defaults of S, I, and 36 resp.
73800 Changing them is inadvisable since we only support those
73900 settings. The defaults will be to the foreign host just
74000 before the first data transfer.
74100
74200 2) RSTR clears any DATA connections that the FTP thinks it has
74300 open. Sometimes it's wrong. If you get an indication from
74400 FTP that a command is illegal because the DATA connection already
74500 exists, do this command. It will go away when hacks in FTP
74600 have been cured.
74700
74800 3) QUOT sends the rest of the line directly over the net, so you
74900 can use it to execute other peoples commands which are either
75000 nonstandard or just unsupported here. This won't do any good
75100 if our end has to be involved in the operation, but it is good
75200 to do things like STAT (status), and HELP at CMU.
75300 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
75400 and NIC document 10596 for complete FTP protocol description.
75500
75600 *26 Nov 1972 MLISP2 DAV
75700 A new version of MLISP2 has been put on the system. An old version
75800 exists and will be around for one week. The main motivation for
75900 the changes was to fix several serious bugs,
76000 and to clean the language up prior to publishing a manual.
76100 Changes:
76200 (1) Variable names can no longer be literals (e.g. IF, FOR, ...).
76300 (2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
76400 (3) SPECIAL variables now must be declared at translation (PARSE)
76500 time. To facilitate this, a new production has been added,
76600 having the form: SPECIAL <identifier_list>
76700 It is strongly suggested that all SPECIAL variables be
76800 declared at the top of the program using this production.
76900 (4) ?# in the syntax (to inhibit scanning) should now be just #.
77000 It no longer takes up a syntax position.
77100 (5) Setting variables in backtracking contexts is now done with
77200 real LISP numbers (formerly machine representation).
77300 A function CONTEXT() gets the current backtracking
77400 context. X{CONTEXT()/10 + 3} ← etc. is now legal.
77500 (6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
77600 (*) Prefixes are more restricted in use; the syntax is
77700 <PREFIX> <SIMPEX> as always, but IF, FOR, CASE, etc.
77800 are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
77900 Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
78000 use RETURN(IF ..., PRINT(CASE ..., etc.
78100 (7) The syntax of SELECT has been changed. Use SUCCESSOR instead
78200 of NEXT, and FINALLY instead of IN WHICH CASE.
78300 E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
78400 UNLESS NULL(L) FINALLY FAILURE()
78500 (8) MLISP2.PRI now prints as it goes along, instead of at the end.
78600
78700 *3 Dec 1972 SAIL RHT
78800 A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
78900 This system will include
79000 (1) Leap revisions by JRL. This means that any programs
79100 that use LEAP should be recompiled.
79200 (2) User required initializations will take place as
79300 the first executable statement of the main
79400 program (after outer block arrays have been
79500 initialized). Programs that are loaded
79600 with any .REL files which have user initializations
79700 should have their main programs recompiled.
79800 (3) Hooks into the user interrupt system have been provided.
79900 Those interested should see Russ Taylor.
80000 (4) A new kind of declaration has been provided:
80100 CLEANUP proc1,proc2,proc3;
80200 Where proc1, etc. are names of (parameterless)
80300 procedures. The effect of a CLEANUP declaration
80400 is to cause the named procedures to be called
80500 whenever the block in which it occurs is exited,
80600 whether by falling through the end, doing a go_to,
80700 or by any other means. These procedures will be
80800 called before any local arrays, sets, or lists are
80900 released. The calls will take place in the order
81000 specified. Thus:
81100
81200 BEGIN
81300 INTEGER I;
81400 PROCEDURE FOO;I←1;
81500 BEGIN
81600 INTEGER ARRAY X[0:I];
81700 PROCEDURE BAZ;OUTSTR(CVS(X[I]);
81800 CLEANUP FOO,BAZ;
81900 :
82000 COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
82100 BE PRINTED OUT;
82200
82300 :
82400 END;
82500 END;
82600
82700 (5) various minor modifications to the process stuff.
82800
82900 The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
83000 & HLBSA5.REL.
83100
83200 The old compiler will be SAIL.D07[1,3]
83300
83400 *12 Dec 72 AP NEWS (APE) ME
83500 There is now a full search feature in APE. If you type in a word
83600 that is not in the keyword dictionary, APE will tell you so and ask
83700 you if you wish a "Full search?". If you type Y, the news file will
83800 be searched for the specified keyword. If you type ?, a (complete)
83900 summary of this feature will be typed out (try it!). If you type
84000 anything else, no search will be done. You may interrupt a search in
84100 progress by typing any character. (That means you may not type ahead
84200 during a search.)
84300
84400 Note: Every word not in the dictionary causes a separate search to
84500 take place and will require you to say Y to "Full search?".
84600
84700 Special note: Normally the whole news file is searched, taking 8 to
84800 10 seconds, but if a non-keyword is the second part of an
84900 intersection (eg, NIXON * JJ), then only the necessary stories are
85000 searched.
85100
85200 *12 DEC 72 PUB TES
85300 PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
85400 The old version is PUBMAC.OLD[1,3] for a few weeks.
85500
85600 The PUB manual has been deleted from the disk. The abstract remains
85700 on PUB.TES[S,DOC]. Bound copies are in the SAILON file drawer.
85800
85900 In January, a new-SAIL PUB should be up with several obscure but
86000 annoying bugs removed. Major restrictions and bugs now known:
86100 SEND INDEX ⊂ ... ⊃ must be all on one line
86200 See {PAGE X} must be followed by a non-word-break
86300 such as ) , ; ] .
86400 but definitely not a SPACE
86500 NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
86600 TURN OFF "}" inside blocks doesn't always work right (just for "}")
86700 ↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
86800 Footnotes hack a lot, esp. if the page fills up during one.
86900
87000 *23 Jan 73 AP NEWS (APE) ME
87100 A new version of APE has been put on the system. The new APE
87200 includes several changes to input formats, particularly where file or
87300 spooler output is desired. The file APE.ME[UP,DOC] has been updated
87400 to explain all the new features in detail. You should read that
87500 file, especially pages 4 to 12, before trying to run APE.
87600 Alternatively, you can type a question mark (and carriage return) to
87700 APE at any time to get help. Here are some of the main changes.
87800
87900 All input lines must now be ended with carriage returns (this
88000 includes the "Y" to cause a search).
88100
88200 Input to APE from a command file is now possible (and easy/fun). The
88300 command file should have the name APE.CMD to be most convenient, but
88400 any file name is legal as is (almost) any text file format (SOS, TV,
88500 E, etc.).
88600
88700 A "CHOOSE" feature has been added to allow you to see the beginning
88800 of each story and then decide if you want to see the rest of the
88900 story.
89000
89100 To get output to a file, you say
89200 <filename> ←
89300 followed by the usual story selection specification.
89400
89500 To get output to the spooler, you add an "S" to the selection line.
89600
89700 To avoid having stories typed out, for instance when they are being
89800 spooled, add a "D" (meaning Dont type 'em) to the selection line.
89900
90000 [ESC] I will interrupt searches as well as typeouts now.
90100
90200 A couple of features are written up in the documentation although
90300 they are not yet implemented. (The writeups do say of course that
90400 these features are unimplemented.) The features are: 1) AUTOMATIC
90500 NOTIFICATION, whereby you can be notified whenever a story comes in
90600 that matches a keyword expression you have specified; and 2) typeout
90700 of the keywords by which a story has been categorized. These
90800 features are written up in the hope that you will read the
90900 descriptions now and will understand the features when they are
91000 implemented.
91100
91200 *28 Jan 73 SAIL JRL
91300
91400 The item NIC returnedby INTERROGATE when the notice queue is empty,
91500 is now the same as the item UNBOUND used in ? FOREACHES and
91600 matching procedures.
91700 i.e.
91800 (NIC=UNBOUND) is TRUE
91900
92000 UNBOUND has a new name BINDIT since we felt the name UNBOUND had
92100 erroneous connotations.
92200
92300 Both NIC and UNBOUND will be allowed for a while, but you should
92400 replace them with BINDIT in your source-files.
92500
92600 Because of these changes programs using NIC, UNBOUND should be
92700 recompiled.
92800
92900 ANY is now an item (though it can't be used in MAKE statements).
93000
93100 So you may now say:
93200 ITMVR ← ANY;
93300 ERASE A⊗B≡ ITMVR;
93400 which will have the same effect as
93500 ERASE A⊗B≡ANY;
93600 ANY may be an element of a set or list.
93700 All itemvars are originally initialized to ANY.
93800
93900 *1 Feb 73 AP NEWS (APE) ME
94000 The keyword listing feature has now been implemented. Add a "W" to
94100 the selection line to have the keywords of each story typed out ahead
94200 of the story.
94300
94400 *22 Feb 1973 FAIL FW
94500 Several changes have been made to FAIL:
94600 1) CALL names are now automatically OPDEFed as their corresponding
94700 CALLIs, so CALL is virtually obsolete. This is done dynamically
94800 so it should always be up to date.
94900 2) BEND, if given an identifier argument, now checks that argument
95000 against the name of the block it ends, and generates an error
95100 message if they mismatch. This can be used as a check on
95200 BEGIN/BEND phasing.
95300 3) The symbol $. is now available, which is like . except that it
95400 refers to the location actually occupied by the current instruction.
95500 This differs from . inside literals or if a PHASE is in effect.
95600 4) Declaring a symbol both INTERNAL and EXTERNAL is now an error,
95700 rather than causing FAIL to drop dead as it used to.
95800 5) The test for too many BENDs now works properly.
95900 6) Frequently redefined macros no longer eat up large amounts of core.
96000
96100 *25 FEB 73 COPY RPH
96200
96300 New copy features:
96400 1) If you use [p] instead of [p,pn] the current default pn is used.
96500 2) XGPLIST, new command, equivalent to COPY XGP:←.
96600 3) New switch for font selects, format:
96700
96800 /FONT{#n}=<filename>{.ext}{[<p>,<pn>]}
96900
97000 If no ext is given, FNT is assumed. If no p,pn is given
97100 XGP,SYS is assumed.The #n is the font id number, if it is left
97200 out, it is assumed to be 0.
97300 4) New format for /EXTRA switch, if you use /EXTRA≡n.
97400 (yes that's an equivalence sign), then n is the number
97500 of scan lines to skip between text lines, not the number
97600 of extra line feeds to insert.
97700
97800 *4 MARCH 1973 MLISP DAV
97900
98000 New version of MLISP is up; old copies will be kept on MLISP.OLD
98100 and MLISPC.OLD on the system for a week or two. Differences:
98200 1) A couple of lingering bugs were squashed.
98300 2) A COMMENT expression was added so that MLISP will accept TV
98400 format files. Syntax:
98500 COMMENT <any characters except ; or unpaired " or %> ;
98600 It may occur anywhere an expression may be used, e.g.
98700 A + COMMENT A DUMB PLACE TO PUT IT; B + C
98800 BEGIN
98900 COMMENT A BETTER PLACE TO PUT IT;
99000 A + B + C;
99100 END;
99200 The old %...% comment is still around as always.
99300 3) An updated version of the LISP compiler is included in MLISPC.
99400 4) Insignificant change: function names are printed horizontally
99500 instead of vertically. Don't worry, PRINT is not screwing
99600 up; that's the way it is supposed to work.
99700
99800 *5 MARCH 1973 PUB TES
99900
00000 THIS NOTICE IS ABOUT 70 LINES LONG, IN DECREASING ORDER OF
00100 IMPORTANCE.
00200
00300 A NEW VERSION OF PUB IS UP TODAY WITH MANY REPAIRS AND A
00400 FEW CHANGES. OLD VERSION IS PUB.OLD. SEE TES WITH PROBLEMS.
00500
00600 NOTE: UNTIL THE NEXT VERSION OF PUB IS UP, XGP USERS SHOULD
00700 USE THE "DEVICE TTY" COMMAND OR THE "/T" SWITCH, ESPECIALLY
00800 IF THE PAGE FRAME IS HIGHER THAN 53 LINES.
00900
01000 ABOUT 15 KNOWN BUGS HAVE BEEN FIXED (THANKS TO RKJ AT CMU FOR
01100 A COUPLE OF STICKLERS). FOOTNOTES SHOULD WORK BETTER;
01200 VARIABLE DECLARATIONS WORK; CROSS-REFERENCES OF THE FORM
01300 "UNIT!" LABEL NOW WORK; AREA TEXT AND COUNT PAGE CAN ONCE
01400 AGAIN BE DECLARED IN BLOCKS; ROMAN NUMERALS, MOD, MIN, AND,
01500 GROUP BEGIN...END, INSERT...PORTION (WITH NO SENDS), AND SOME
01600 OTHER THINGS NOW WORK WELL. TRY OUT YOUR FAVORITE BUG.
01700
01800 ONE BUG NOT YET FIXED: SOMETIMES PUB WILL LOOP
01900 WHEN THERE ARE AREAS DECLARED THAT DON'T START AT CHAR 1.
02000 REPORT OTHER BUGS TO TES.
02100
02200 CHANGES AND NEW FEATURES:
02300 (1) TYPEOUT DURING COMPILATION RESEMBLES NEW SAIL'S.
02400 NOTE: FILES LIKE 3INDE.PUZ AND 2CONT.PUG ARE GENERATED
02500 FILES. PAGE 1 OF TV FILES IS NOT REPORTED BY PUB.
02600
02700 (2) THERE IS NO LONGER A BLANK PAGE AT THE BEGINNING OF LPT
02800 DOCUMENTS.
02900
03000 (3) NEW COMMAND TO CIRCUMVENT CHANGE (2): "BLANK PAGE N" CLOSES
03100 THE CURRENT PGE AND LEAVES N BLANK PAGES IN THE DOCUMENT.
03200 THE PAGE COUNTER IS NOT AFFECTED. IF N IS OMITTED, 1 IS
03300 ASSUMED.
03400
03500 (4) FOR TTY USERS: INSTEAD OF CURLY BRACKETS AND HORSESHOE
03600 BRACKETS, YOU CAN NOW USE THE FOLLOWING CHARACTER PAIRS:
03700 $( MEANS LEFT HORSESHOE (OPEN MACRO)
03800 )$ MEAN RIGHT HORSESHOE (CLOSE MACRO)
03900 ]$ MEANS RIGHT BRACE (SWITCH TO TEXT MODE)
04000 THESE ARE ONLY VALID IN COMMAND MODE AND NEED NOT BE TURNED
04100 ON. ON THE OTHER HAND, THE FOLLOWING CONTROL CHARACTERS
04200 ARE ONLY RECOGNIZED IN TEXT MODE AND MUST BE TURNED ON
04300 (OTHER CHARACTERS MAY BE TURNED ON FOR THEM):
04400 $[ MEANS LEFT BRACE (SWITCH TO COMMAND MODE).
04500
04600 (5) NEW FEATURE: TURN ON/OFF TAB FOR "<CHARACTER>" ;;
04700 AS PUB READS THE MANUSCRIPT, IT SUBSTITUTES FOR EACH "TAB"
04800 FROM ONE TO EIGHT SPACES. THIS COMMAND CHANGES PUB SO THAT
04900 IT SUBSTITUTES THE SINGLE CHARACTER <CHARACTER> INSTEAD.
05000 THE COMMAND MUST BE FOLLOWED BY TWO SEMICOLONS OR ELSE IT MAY
05100 NOT TAKE EFFECT ON THE NEXT LINE. IF IT IS DECLARED IN A BLOCK,
05200 THE "END" OF THE BLOCK MUST BE FOLLOWED BY TWO SEMICOLONS OR
05300 THE ORIGINAL MEANING OF TAB MAY NOT REAPPEAR IN TIME FOR THE
05400 NEXT LINE.
05500
05600 (6) SINGLE SPACE, DOUBLE SPACE, AND TRIPLE SPACE NOW BREAK BEFORE
05700 CHANGING THE VALUE OF SPREAD, SO THEY TAKE EFFECT IMMEDIATELY.
05800
05900 SUGGESTIONS AND WARNINGS:
06000 (1) "COUNT PAGE" INITIALLIZES THE PAGE COUNTER TO NULL. IT
06100 GETS STEPPED TO 1 THE NEXT TIME A PAGE IS OPENED.
06200 THIS IS WHY THE TITLE PAGE HAS A BLANK PAGE NUMBER.
06300
06400 (2) AREA RE-DECLARATIONS DO NOT TAKE EFFECT UNTIL THE
06500 CURRENT PAGE IS CLOSED.
06600
06700 (3) IF YOUR DOCUMENT IS LONG, IT IS HELPFUL TO HAVE A SOURCE
06800 FILE FOR EACH CHAPTER, AND ON EACH DEBUG RUN TO "REQUIRE"
06900 FROM THE MAIN MANUSCRIPT FILE ONLY THOSE CHAPTER FILES THAT
07000 YOU ARE TESTING. GLOBAL MACROS SHOULD APPEAR IN THE MAIN
07100 FILE OF COURSE.
07200
07300 THE MANUAL HAS NOT BEEN CHANGED, BUT IT IS BACK ON THE DISK
07400 FOR THE BENEFIT OF NET USERS (SEE PUB.TES[S,DOC] FOR DETAILS).
07500
07600 *9 MARCH 1973 MLISP2 DAV
07700
07800 A new version of MLISP2 is up. Old version is on SYS:MLISP2.OLD for
07900 a week or so. There have been extensive changes, but most are additions
08000 so that programs shouldn't have to be altered. The changes:
08100
08200 1) The code generated in the syntax part of productions is somewhat
08300 shorter and more efficient.
08400
08500 2) There is now a way to prevent an identifier in the syntax part of
08600 a production from being turned into a LITERAL, namely precede it
08700 with a quote mark (').
08800 Example: {IF ...}
08900 makes IF a LITERAL, as well as generating code to check for it,
09000 but {'IF ...}
09100 just generates the code to check for it. In fact, any token
09200 of type identifier, number or delimiter may be included in
09300 the syntax by preceeding it with the quote mark; previously
09400 only delimiters could be so included.
09500
09600 3) Numbers in syntax patterns MUST now be preceeded by the quote
09700 mark; previously they could occur alone. This should not
09800 affect anyone, since I don't know of anyone who uses numbers.
09900
10000 4) The syntax of FOR, WHILE and UNTIL loops has been generalized
10100 slightly: `WHILE' and `UNTIL' are now interchangeable:
10200 Examples: FOR NEW I IN L DO NIL UNTIL I = X;
10300 FOR NEW I IN L DO NIL WHILE I = X;
10400 DO PRINT(X) UNTIL A=B;
10500 DO PRINT(X) WHILE A=B;
10600 WHILE A=B DO PRINT(X);
10700 UNTIL A=B DO PRINT(X);
10800 In addition, the code generated by COLLECT in all of the loops
10900 is now more efficient (generates an NCONC in some cases, rather
11000 than an APPEND).
11100
11200 5) The DEFINE expression and the vector operator (⊗) have been
11300 added to MLISP2 to make it more compatible with MLISP
11400 (c.f. the MLISP manual). However, the DEFINE
11500 expression is not quite as general: only prefix and infix
11600 functions may be DEFINEd, whereas MLISP would allow any
11700 symbol to be DEFINEd.
11800 Syntax: DEFINE <dterm>, <dterm>, ..., <dterm> (at least 1)
11900 <dterm> ::= <identifier> PREFIX [<token>] [<integer>]
12000 <identifier> <integer> <integer>
12100 <identifier> <token> [<integer> <integer>]
12200 where [] means optional.
12300 The integers are binding powers for the function; only one
12400 binding power, the right binding power, needs to be specified for
12500 prefixes. The <token>s are identifiers or delimiters which
12600 may serve as an abbreviation for the function.
12700 Examples: DEFINE NOT PREFIX;
12800 DEFINE NOT PREFIX ¬;
12900 DEFINE NOT PREFIX 1000;
13000 DEFINE PLUS + 350 400;
13100
13200 6) ONLY FUNCTIONS THAT ARE EXPLICITLY DEFINE'D TO BE PREFIXES MAY
13300 NOW BE USED AS PREFIXES (I.E. WITHOUT () AROUND THEIR
13400 ARGUMENT AND WITH THE VECTOR OPERATOR ⊗)!!! NO MORE USER-DEFINED
13500 PREFIXES UNLESS EXPLICITLY DEFINE'D!!!
13600
13700 *16 March 1973 FREEFOROL processes Text Macros LES
13800 Freeforol may be used to generate form letters or other fill-in-
13900 the-blanks text. It is described in FREEFO.LES[UP,DOC].
14000
14100 *21 March 1973 WHERE Command TVR
14200 Typing WHERE <programmer> will print the status of such jobs
14300 currently logged in. For example, WHERE NET,GUE will WHERE all
14400 network guests. Like WHO, this also clobbers your core image.
14500
14600 *27 March 1973 TV ↔ E switching DCS and FW
14700
14800 During transition from TV to E, there will be features available
14900 in one which are unavailable in the other. To ease the switch,
15000 we have installed complementary extend-mode commands: "ETV"
15100 in TV, "TV" in E. Executing it will switch editors (writing
15200 current page first, if necessary). The new editor will be
15300 editing the same file, on the same page and line, with the same
15400 protection (readonly or readwrite).
15500
15600 The "TV" command in E is only a special case of a much more
15700 glorious "RUN" feature. For more information see TV2E.FW[UP,DOC].
15800
15900 *4 April 1973 TALKER, FTP DCS
16000
16100 In response to the Site: prompt, one can type a site name or
16200 a (decimal) site number -- one way to try to find out the site
16300 name of an otherwise Anonymous site.
16400
16500 *5 April 1973 PUB TES
16600 Users of Jerry Agin's underground figure macros note:
16700
16800 "MACRO SECREF" et al have a bug which was ignored by old
16900 versions of PUB but now result in the error message:
17000 "EXTRANEOUS { IN COMMAND LINE"
17100 To fix this, remove both the { and } from these particular
17200 macros. E.G.:
17300 .MACRO SECREF ⊂ "Section " ;{SECTION! LBL} ⊃
17400 should be:
17500 .MACRO SECREF ⊂ "Section " ;SECTION! LBL ⊃
17600
17700 If you like, this can be abbreviated:
17800 .MACRO SECREF ⊂ "Section!" LBL ⊃
17900 which did not work in old versions but now does!
18000
18100 *8 April 73 APE, AUTOMATIC NOTIFICATION ME
18200
18300 If you wish to be notified each and every time an AP story comes in
18400 that matches a given keyword expression, type the expression to APE
18500 and precede it with a dollar sign ($). For example,
18600 $JUPITER*PIONEER
18700 When a story comes in that matches the expression, you will be sent a
18800 message which you will get when you login. Also, if you are logged
18900 in at the time the story comes in, the message
19000 *** AP STORY FOUND ***
19100 will be typed on your console.
19200
19300 To see what automatic notification requests you currently have, type
19400 the keyword expression "$" (just dollar sign) to APE. To be able to
19500 delete these requests, type the expression "$$". Each request will
19600 expire two months after it is submitted. At that time you will get a
19700 message indicating that the request has expired.
19800
19900 *11 APR 73 XGP REM
20000 The currently most-useful program for printing documents on
20100 the Xerox Graphics Printer is MRPP3[XGP,REM] (Maas Research Paper
20200 Plotter program, version 3) which allows you to change fonts anywhere
20300 (in the middle of a word if you wish), do paragraph justification and
20400 centering, super-scripts above sub-scripts, nicely-formatted tabular
20500 listings, etc. The latest documentation is usually posted on the
20600 bulletin board near the machine room, however if you want you own
20700 copy here is what you do:
20800 .RU MRPP3[XGP,REM]
20900 FOO.LST←MRPP3.WRU[XGP,REM]
21000 then when it is all finished and you see XG @QQXGP.RPG in your line
21100 editor, hit carriage return, wait for the device to be available if
21200 it is busy, then collect the approximately three pages as they come
21300 out of the XGP (after the 2 8/10 pages of chard that comes out ahead
21400 of each listing).
21500
21600 *9 APR 73 APE, AUTOMATIC NOTIFICATION ME
21700
21800 Here are some notes on using Automatic Notification for AP stories.
21900
22000 Automatic notification (AN) is intended to be used for two main
22100 purposes. 1) If you are expecting an urgent story to come in at any
22200 moment, and you want to be notified as soon as it comes in (assuming
22300 you are logged in), automatic notification saves you the trouble of
22400 running APE every half hour to find out if your story has come in.
22500 2) If you are expecting a story to come in some day, but you don't
22600 know when, then AN saves you the effort of running APE every day, if
22700 you wouldn't otherwise do so.
22800
22900 If you find you are being notified about the same kind of story
23000 several times a day, and if the stories are not particularly urgent,
23100 then you will probably find that the normal use of APE, possibly
23200 using a command file (see previous section) will be more convenient.
23300 Also, the more AN requests there are, the more work the continually
23400 running special AP programs have to do. However, you are free to
23500 choose the method of using APE that best fits your purposes.
23600
23700 One final note on AN: When you get a hit from an AN request, the best
23800 way to use APE to read the story is to type in the expression
23900 (possibly using a command file) that got the hit. Alternatively, you
24000 can type in the sequence number of the story found, but this is
24100 liable to give you an extra story with the same sequence number. You
24200 can combine these two methods and type something like (say)
24300 "#35*CHESS", if CHESS was the AN request getting a hit on story #35.
24400 If a story you have been notified about is more than a day or so old,
24500 then you will probably not find it with APE. However, since the news
24600 is spooled every day, you should be able to find old stories in the
24700 stack of listings in the lounge (unless you are a remote user!). For
24800 even older listings, see ME.
24900
25000 For more details, see APE.ME[UP,DOC], special features 10, 11 and 12.
25100